<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Bootstrap
 *
 * @author bancan
 */
class Bootstrap {

    public function __construct() {
        //mendapatkan url yang nantinya nama nya tersebut akan di pass ke folder controller 

        $url = isset($_GET['url']) ? $_GET['url'] : null;
        $url = rtrim($url, '/');
        $url = explode('/', $url);

//        print_r($url);
        // handler apabila tidak ada url yang diinput maka ketika array ke 0 null tetap bisa
        // me load controller index nya

        if (empty($url[0])) {

            require 'controllers/index.php';
            $controller = new Index ();
            $controller->index();
            return false;
        }

        //pencarian lokasi controller yang nantinya menghandle view

        $file = 'controllers/' . $url[0] . '.php';

        if (file_exists($file)) {
            require $file;
        } else {
             require 'controllers/Error.php';
            $controller = new Error();
            $controller->index();
            return false;
        }
        //jika blok url terisi maka setelah di explode menjadi array .. array ke 0
        // merupakan nama kontroller nya

        $controller = new $url[0];
        
        //menjalankan fungsi loadmodel yang ada kontroller
        $controller->loadmodel($url[0]);

        if (isset($url[2])) {
            if (method_exists($controller, $url[1])) {
                $controller->{$url[1]}($url[2]);
            } else {
                $this->error();
            }
        } else {
            if (isset($url[1])) {
                if (method_exists($controller, $url[1])) {
                    $controller->{$url[1]}();
                } else {
                    $this->error();
                }
            }else {
                //meload fungsi index sebagai fungsi default nya
                $controller->index();
            }
        }
       
    }

    public function error() {
        require 'controllers/Error.php';
        $controller = new Error();
        $controller->index();
        return false;
    }

}

?>
